import { S } from '../../s';
import { IPSChartPolarAngleAxis } from './ipschart-polar-angle-axis';
import { IPSChartPolarRadiusAxis } from './ipschart-polar-radius-axis';
import { IPSDEChartPolar } from './ipsdechart-polar';
import { PSDEChartCoordinateSystemControlImplBase } from './psdechart-coordinate-system-control-impl-base';

export class PSDEChartPolarImpl
  extends PSDEChartCoordinateSystemControlImplBase
  implements IPSDEChartPolar
{
  protected pschartpolarangleaxis: IPSChartPolarAngleAxis;
  getPSChartPolarAngleAxis(): IPSChartPolarAngleAxis | null {
    return (
      this.pschartpolarangleaxis ||
      (this.pschartpolarangleaxis = this.fillObjectModel(
        S._104,
        this.M.getPSChartPolarAngleAxis,
        S._303,
      ) as IPSChartPolarAngleAxis)
    );
  }

  protected pschartpolarradiusaxis: IPSChartPolarRadiusAxis;
  getPSChartPolarRadiusAxis(): IPSChartPolarRadiusAxis | null {
    return (
      this.pschartpolarradiusaxis ||
      (this.pschartpolarradiusaxis = this.fillObjectModel(
        S._107,
        this.M.getPSChartPolarRadiusAxis,
        S._304,
      ) as IPSChartPolarRadiusAxis)
    );
  }
  get cls(): string {
    return 'PSDEChartPolarImpl';
  }
  instanceof(cls: string): boolean {
    if (cls == S._105 || cls == S._e3 || cls == S._106) return true;
    return super.instanceof(cls);
  }
}
